草庐IT

python - datetime.datetime 不是 JSON 可序列化的

全部标签

ruby - 另一种方法而不是转义正则表达式模式?

通常当我的正则表达式模式看起来像这样时:http://www.microsoft.com/然后我必须像这样逃避它:string.match(/http:\/\/www\.microsoft\.com\//)有没有其他方法而不是像那样转义它?我希望能够像这样使用它http://www.microsoft.com,因为我不想转义所有模式中的所有特殊字符。 最佳答案 Regexp.new(Regexp.quote('http://www.microsoft.com/'))Regexp.quote简单地转义任何具有特殊正则表达式含义的字符;

ruby - 如果不是插件,请明确指定 Vagrantfile 路径

有没有办法明确指定Vagrantfile的路径?我的公司想做这样的事情:为了在confluence机器上进行测试,键入类似vagrantspinupconfluence的命令,然后将其指向包含confluence环境的不同目录中的Vagrantfile,然后调出所有这些机器。但是,似乎没有任何方法可以明确说明要使用什么Vagrantfile,而且我对ruby​​有点(非常)陌生,所以我很难为它编写自己的插件。有人对做什么有建议吗?或者有人做过类似的事情吗? 最佳答案 根据AndrewLorente的回答,您还可以使用VAGRANT_

python - Ruby 中的装饰器(从 Python 迁移)

我今天从Python的角度学习Ruby。我完全没能解决的一件事是装饰器的等价物。为了精简内容,我尝试复制一个简单的Python装饰器:#!/usr/bin/envpythonimportmathdefdocument(f):defwrap(x):print"Iamgoingtosquare",xf(x)returnwrap@documentdefsquare(x):printmath.pow(x,2)square(5)运行这个给我:Iamgoingtosquare525.0因此,我想创建一个函数square(x),但要对其进行装饰,以便它在执行之前提醒我它要对什么进行平方。让我们去掉糖

ruby - 为什么 sqrt() 不是 Numeric 上的方法?

在Ruby中,一切皆对象。这就是为什么我不明白为什么我们有Math模块。在我看来,Math模块中的大部分(全部?)函数应该是Integer、Float等数字类型的方法。例如而不是Math.sqrt(5)这样会更有意义5.sqrtsin、cos、tan、log10等也是如此。有谁知道为什么所有这些函数最终都在数学模块中? 最佳答案 我不知道Ruby的早期历史,但我感觉Math模块是在Cheader之后建模的。不过,它在Ruby标准库中是一只奇怪的鸭子。但是,它是Ruby!所以你总能摆脱猴子补丁!classFloatdefsqrt;Ma

ruby - 我什么时候应该使用 OpenStruct 而不是 Hash?

我喜欢“任意属性的定义”,我认为ruby​​中的OpenStruct有时感觉比使用哈希更干净,但我很好奇是否还有其他特定优势或用例使OpenStruct成为更好的选择而不是简单地使用哈希。 最佳答案 OpenStruct对象在您需要适合特定方法调用接口(interface)的东西时很有用(即发送响应#name和#的鸭子类型对象value),或者当你想封装实现细节,但又想避免过度设计解决方案时。它们还制作了一个很棒的stub对象,当我不需要stub/模拟的开销时,我经常使用它们代替框架stub。

ruby-on-rails - 如何重置 factory_girl 序列?

前提是我有项目工厂Factory.define:projectdo|p|p.sequence(:title){|n|"project#{n}title"}p.sequence(:subtitle){|n|"project#{n}subtitle"}p.sequence(:image){|n|"../images/content/projects/#{n}.jpg"}p.sequence(:date){|n|n.weeks.ago.to_date}end我正在创建项目实例Factory.build:projectFactory.build:project此时,下次我执行Factory.b

ruby - 如何从 DateTime 值中删除区域?

我有这个日期时间:=>Fri,03Feb201211:52:42-0500如何删除ruby​​中的区域(-0500)?我只想要这样的东西:=>Fri,03Feb201211:52:42 最佳答案 时间总有一个区(没有区就没有意义)。您可以使用DateTime#strftime在打印时选择忽略它:now=DateTime.nowputsnow#=>2012-02-03T10:01:24-07:00putsnow.strftime('%a,%d%b%Y%H:%M:%S')#=>Fri,03Feb201210:01:24参见Time#st

ruby - 何时使用 Ruby DelegateClass 而不是 SimpleDelegator? (DelegateClass 方法与 SimpleDelegator 类)

可能我遗漏了一些简单的东西,但我不明白如何使用Ruby的DelegateClass方法,我的意思是什么时候使用它而不是SimpleDelegator类(class)。例如,以下所有内容的工作原理几乎相同:require'delegate'a=SimpleDelegator.new([0])b=DelegateClass(Array).new([0])c=DelegateClass(String).new([0])a[0,1]pb#=>[0,2]pc#=>[0,3]请注意,将哪个类传递给DelegateClass似乎并不重要。 最佳答案

ruby - 更喜欢 %w(...) 而不是文字数组?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。在向RubyMine输入一个简单的字符串文字数组时:cols=["Col1","Col2"]RubyMine提示我应该更喜欢使用%w而不是文字数组:cols=%w(Col1Col2)它提供了一个指向Ruby风格指南(here)的链接,其中说:Prefer%wtotheliteralarraysyntaxwhenyouneedanarrayofstring

ruby-on-rails - 为什么Ruby的正则表达式使用\A和\z而不是^和$?

我不是Ruby程序员,但当我阅读广泛的RubyonRailssecurityguide,我注意到了这一部分:AcommonpitfallinRuby’sregularexpressionsistomatchthestring’sbeginningandendby^and$,insteadof\Aand\z.有谁知道这只是美学问题还是其他问题?我问是因为我只使用过使用^和$的语言。 最佳答案 这不是Ruby特有的;\A和\Z与^和$不同。^和$是lineanchor的开始和结束,而\A和\Z是stringanchor的开始和结束。Ru